﻿using Draco.OWF.Metadata;
using Draco.OWF.Metadata.DataBinding;
using System;
using System.Collections.Generic;

namespace Draco.OWF.RT
{
    public interface IJob
    {
        String Id { get; set; }
        String Name { get; set; }
        JobStatus Status { get;}
        WorkflowModel WorkflowDefine { get; }
        void AddTask(ITask acins);
        void AddRouteInstance(IJobPath acins);
        ITask GetTask(String Id);
        IJobPath GetRouteInstance(String Id);

        void Start(IJobContext jobContext, BindingData arguments);

        IList<ITask> MoveNext(IJobContext jobContext, IList<ITask> laskTaks);
    }
}
